#include <func.h>

void print_ids(const char* prefix)
{
    printf("%s: pid=%d, ppid=%d, tid=0x%lx\n",
           prefix,
           getpid(),
           getppid(),
           pthread_self());
}

void* start_routine(void* args) 
{
    // 子线程的入口函数
    print_ids("new thread");
    return NULL;
}

int main(int argc, char* argv[])
{
    // main线程的入口
    print_ids("main thread");

    pthread_t tid;
    int err = pthread_create(&tid, NULL, start_routine, NULL);
    // pthread_create 返回后，到底是主线程先执行
    // 还是子线程限制性，这是不确定的。
    if (err) {
        fprintf(stderr, "pthread_create(): %s\n", strerror(err));
        exit(1);
    }

    printf("main thread: %lx created\n", tid);
    sleep(2);  // 让子线程执行完

    return 0;  // exit(0)
}

